package org.lx.common.ai;

import com.baidubce.qianfan.Qianfan;
import com.baidubce.qianfan.core.auth.Auth;
import com.baidubce.qianfan.model.chat.ChatResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
@Slf4j
public class AIModelInvoker {

    @Autowired
    private BaiduAIProperties baiduAIProperties;
    //返回值是Json类型
    public String qianfanInvoker(String prompt) {
        // 打印输入的提示词（调试用，生产环境建议使用日志框架）
        //log.info("提示词prompt:{}", prompt);

        // 初始化百度千帆API客户端（使用OAuth认证方式）
        Qianfan qianfan = new Qianfan(
                Auth.TYPE_OAUTH,
                baiduAIProperties.getAccessKey(),
                baiduAIProperties.getSecretKey()
        );

        // 构建并执行聊天补全请求
        ChatResponse response = qianfan.chatCompletion()
                // 设置使用的AI模型（从配置中获取）
                .model(baiduAIProperties.getQianfanModel())

                // 添加用户消息内容
                .addMessage("user", prompt)

                // 设置生成随机性（0.0-1.0，值越高越随机）
                .temperature(0.7)

                // 设置最大输出token限制
                .maxOutputTokens(2000)

                // 要求返回JSON格式响应
                .responseFormat("json_object")

                // 执行API调用
                .execute();

        // 获取AI生成的响应结果
        String result = response.getResult();

        // 打印原始响应（调试用，生产环境建议移除）
        //System.out.println(result);

        return result;
    }


}
